package com.br.fsm.projectdelivery.controlador;

import java.util.ArrayList;

import com.br.fsm.projectdelivery.basica.Pagamento;
import com.br.fsm.projectdelivery.excecao.ControladorException;
import com.br.fsm.projectdelivery.excecao.RepositorioException;
import com.br.fsm.projectdelivery.repositorio.IRepositorioPagamento;
import com.br.fsm.projectdelivery.repositorio.RepositorioPagamento;

public class ControladorPagamento extends ControladorBasico implements IControladorPagamento {

	private IRepositorioPagamento repositorioPagamento;
	private static ControladorPagamento instance;

	private ControladorPagamento() {
		super();
		repositorioPagamento = (IRepositorioPagamento) RepositorioPagamento
				.getInstance();
	}

	public static ControladorPagamento getInstance() {
		if (instance == null) {
			instance = new ControladorPagamento();
		}
		return instance;
	}
	
	@Override
	public Pagamento getPagamentoById(int id) throws ControladorException {
		try {
			return repositorioPagamento.getPagamentoById(id);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public ArrayList<Pagamento> getAllPagamento() throws ControladorException {
		try {
			return repositorioPagamento.getAllPagamento();
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void insertPagamento(Pagamento pagamento) throws ControladorException {
		try {
			repositorioPagamento.insertPagamento(pagamento);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void updatePagamento(Pagamento pagamento) throws ControladorException {
		try {
			repositorioPagamento.updatePagamento(pagamento);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void removePagamento(Pagamento pagamento) throws ControladorException {
		try {
			repositorioPagamento.removePagamento(pagamento);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}
}
